package com.itheima.lambda1;

/**
 * 1.首先存在一个接口（StringHandler）
 *
 *  2.在该接口中存在一个抽象方法（printMessage），该方法是有参数无返回值
 *
 *  3.在测试类（StringHandlerDemo）中存在一个方法（useStringHandler）
 *
 *               方法的的参数是StringHandler类型的
 *
 *               在方法内部调用了StringHandler的printMessage方法
 */
public class StringHandlerDemo {

    public static void main(String[] args) {
        //匿名内部类
        useStringHandler(new StringHandler() {
            @Override
            public void printMessage(String msg) {
                System.out.println("这是匿名内部类的方法");
                System.out.println(msg);
            }
        });
        useStringHandler(x -> {
            System.out.println("这是匿名内部类的方法");
            System.out.println(x);
        });
        //lambda表达式
        useStringHandler((String xxx)->{
            System.out.println("这是lambda的方法");
            System.out.println(xxx);
        });
    }

    public static void useStringHandler(StringHandler handler){


        handler.printMessage("蔡老师爱打篮球");

    }
}

interface  StringHandler{
    void printMessage(String msg);


}
